﻿#ifndef JSON_UTILS_H
#define JSON_UTILS_H

#include <QString>
#include <QVariant>
#include <QVariantList>
#include <QVariantMap>
#include <QByteArray>

namespace JsonUtil
{
    bool loadJson(const QString& filePath, QVariantMap &map);
    bool loadJson(const QString& filePath, QVariant &variant);
    bool loadJson(const QString& filePath, QVariantList &varList);

    void saveJsonForce(const QVariantMap &map, QString filePath);
    bool saveJson(const QVariantMap &map, QString filePath);
    bool saveJson(const QVariantList &varList, QString filePath);
    bool byteArray2VarMap(QByteArray &byteArray, QVariantMap &map);
    bool variant2ByteArray(const QVariant &variant, QByteArray &byteArray);
    bool varMap2ByteArray(QVariantMap &map, QByteArray &byteArray);

    QVariantMap jsonStr2map(const QString& jsonStr);
    QVariantList jsonStr2List(const QString& jsonStr);

    QString map2jsonStr(const QVariantMap& map);

    QByteArray getBigEndianInt(int n);
    QByteArray packData(const QVariantMap& json, const QByteArray& data);
    QByteArray packDataFE(const QVariantMap& json, const QByteArray& data);
}
#endif
